\documentclass[10pt,a4paper]{article}
%\usepackage{zh_CN-Adobefonts_external}
\usepackage{xeCJK}
\usepackage{amsmath, amsthm}
\usepackage{listings,xcolor}
\usepackage{geometry} % 设置页边距
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage[colorlinks]{hyperref}
\usepackage{setspace}
\usepackage{fancyhdr} % 自定义页眉页脚


\setsansfont{Consolas} % 设置英文字体
\setmonofont[Mapping={}]{Consolas} % 英文引号之类的正常显示，相当于设置英文字体

\linespread{1.2}

\title{Template For ICPC}
\author{ChenJr @ GDUT}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\pagestyle{fancy}

\lhead{\CJKfamily{kai} GuangDong University of Technology} %以下分别为左中右的页眉和页脚
\chead{}

\rhead{\CJKfamily{kai} 第 \thepage 页}
\lfoot{} 
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt} 
\renewcommand{\footrulewidth}{0.4pt}
%\geometry{left=2.5cm,right=3cm,top=2.5cm,bottom=2.5cm} % 页边距
\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm}
\setlength{\columnsep}{30pt}

\makeatletter

\makeatother



\lstset{
    language    = c++,
    numbers     = left,
    numberstyle={                               % 设置行号格式
        \small
        \color{black}
        \fontspec{Consolas}
    },
	commentstyle = \color[RGB]{0,128,0}\bfseries, %代码注释的颜色
	keywordstyle={                              % 设置关键字格式
        \color[RGB]{40,40,255}
        \fontspec{Consolas Bold}
        \bfseries
    },
	stringstyle={                               % 设置字符串格式
        \color[RGB]{128,0,0}
        \fontspec{Consolas}
        \bfseries
    },
	basicstyle={                                % 设置代码格式
        \fontspec{Consolas}
        \small\ttfamily
    },
	emphstyle=\color[RGB]{112,64,160},          % 设置强调字格式
    breaklines=true,                            % 设置自动换行
    tabsize     = 4,
    frame       = single,%主题
    columns     = fullflexible,
    rulesepcolor = \color{red!20!green!20!blue!20}, %设置边框的颜色
    showstringspaces = false, %不显示代码字符串中间的空格标记
	escapeinside={\%*}{*)},
}

\begin{document}
\title{ICPC Templates For Grooming}
\author {ChenJr}
\maketitle
\tableofcontents
\newpage
\section{数据结构}
\subsection{并查集}
\lstinputlisting{数据结构/并查集.cpp}
\subsection{对顶堆}
\lstinputlisting{数据结构/对顶堆.cpp}
\subsection{线段树}
\subsubsection{线段树1}
\lstinputlisting{数据结构/线段树/线段树1.cpp}
\subsubsection{线段树2}
\lstinputlisting{数据结构/线段树/线段树2.cpp}
\subsubsection{线段树3}
\lstinputlisting{数据结构/线段树/线段树3.cpp}
\subsection{树状数组}
\lstinputlisting{数据结构/树状数组.cpp}
\subsection{块状数据结构}
\subsubsection{分块}
\lstinputlisting{数据结构/块状数据结构/分块.cpp}
\subsection{可持久化数据结构}
\subsubsection{可持久化线段树}
\lstinputlisting{数据结构/可持久化数据结构/可持久化线段树.cpp}
\subsubsection{第k小数}
\lstinputlisting{数据结构/可持久化数据结构/第k小数.cpp}
\subsection{ac自动机}
\lstinputlisting{数据结构/ac自动机.cpp}
\section{数论}
\subsection{Numbertheory}
\lstinputlisting{数论/Numbertheory.cpp}
\subsection{组合数学}
\lstinputlisting{数论/组合数学.cpp}
\subsection{逆元}
\lstinputlisting{数论/逆元.cpp}
\subsection{快速幂}
\lstinputlisting{数论/快速幂.cpp}
\subsection{质数}
\lstinputlisting{数论/质数.cpp}
\subsection{约数}
\lstinputlisting{数论/约数.cpp}
\subsection{卢卡斯定理}
\lstinputlisting{数论/卢卡斯定理.cpp}
\subsection{斯特林数}
\lstinputlisting{数论/斯特林数.cpp}
\subsection{整除}
\lstinputlisting{数论/整除.cpp}
\section{基础算法}
\subsection{二分}
\lstinputlisting{基础算法/二分.cpp}
\subsection{三分}
\lstinputlisting{基础算法/三分.cpp}
\subsection{位运算}
\lstinputlisting{基础算法/位运算.cpp}
\subsection{离散化}
\lstinputlisting{基础算法/离散化.cpp}
\subsection{前缀和}
\lstinputlisting{基础算法/前缀和.cpp}
\subsection{差分}
\lstinputlisting{基础算法/差分.cpp}
\subsection{st}
\lstinputlisting{基础算法/st.cpp}
\subsection{倍增}
\lstinputlisting{基础算法/倍增.cpp}
\subsection{高精度}
\lstinputlisting{基础算法/高精度.cpp}
\subsection{双指针}
\lstinputlisting{基础算法/双指针.cpp}
\subsection{区间合并}
\lstinputlisting{基础算法/区间合并.cpp}
\section{动态规划}
\subsection{背包}
\lstinputlisting{动态规划/背包.cpp}
\subsection{区间dp}
\lstinputlisting{动态规划/区间dp.cpp}
\subsection{线性dp}
\lstinputlisting{动态规划/线性dp.cpp}
\subsection{单调队列优化dp}
\lstinputlisting{动态规划/单调队列优化dp.cpp}
\section{解题思路}
\subsection{解题}
\lstinputlisting{解题思路/解题.cpp}
\subsection{分数规划}
\lstinputlisting{解题思路/分数规划.cpp}
\section{常用函数}
\subsection{常用函数1}
\lstinputlisting{常用函数/常用函数1.cpp}
\section{字符串}
\subsection{字符串哈希}
\lstinputlisting{字符串/字符串哈希.cpp}
\subsection{tire字典树}
\lstinputlisting{字符串/tire字典树.cpp}
\section{图论}
\subsection{最短路}
\subsubsection{Dijkstra}
\lstinputlisting{图论/最短路/Dijkstra.cpp}
\subsubsection{Floyd}
\lstinputlisting{图论/最短路/Floyd.cpp}
\subsection{最小生成树}
\subsubsection{Kruskal}
\lstinputlisting{图论/最小生成树/Kruskal.cpp}
\subsubsection{Prim}
\lstinputlisting{图论/最小生成树/Prim.cpp}
\subsection{无向图三元环计数}
\lstinputlisting{图论/无向图三元环计数.cpp}
\subsection{结论}
\lstinputlisting{图论/结论.cpp}
\subsection{拓扑排序}
\lstinputlisting{图论/拓扑排序.cpp}
\subsection{负环}
\lstinputlisting{图论/负环.cpp}
\subsection{tarjan强连通分量}
\lstinputlisting{图论/tarjan强连通分量.cpp}
\subsection{lca}
\lstinputlisting{图论/lca.cpp}
\end{document}